#ifndef GX_FR_EDITOR_COMMAND_H
#define GX_FR_EDITOR_COMMAND_H

#include "Basic/GxLibBasic.h"


namespace FinalRendering
{
	namespace Editor
	{
		using namespace GxLibBasic;

		class Scene;

		class Command abstract : public Object
		{
		public:
			bool Cancelled;
			Command();
			virtual void PerformAction(Scene * scene)=0;
			virtual void UndoAction(Scene * scene)=0;
		};

		class CompoundCommand : public Command
		{
		public:
			Array<RefPtr<Command>> commands;
			virtual void PerformAction(Scene * scene);
			virtual void UndoAction(Scene * scene);
		};
	}
}

#endif